package xkp.lesson2;

import java.util.HashSet;
import java.util.Iterator;
import java.util.RandomAccess;

//Ctrl+Alt+o快速删除无用包
public class TestSet {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();
        //注意
        set.add("123");
        set.add("234");
        set.add("Hello");
        set.add("你好");
        System.out.println( set.add("你好"));
        System.out.println(set.size());
        //Set集合中不能存放重复的数据
        //Set存放的数据是无序的,不能通过下标访问
        //Set没有实现RandomAccess接口
        Iterator<String> iterator = set.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //通过打印的结构，看起来貌似是有顺序的，其实不然
        set.remove("123");
        System.out.println(set.contains("123"));

        //Set面试时最重要的问题
        //Set中如何保证存放不重复的数据
        //Set根据什么判断数据重复
        //hashCode()和equals()
        //hashCode---哈希码
        //Set如何判断数据重复
        //1、先根据hashcode 哈希码判断
        //2、如果hashcode一致，则再根据equals方法判断
        //3、只有这两个方法的结果都一致，则认为相同

        //什么时hashcode 哈希码
        //哈希散列表
        //为了提高数据的查询效率
        //
    }
}
